VERSION = 3.00 builderd.h~$ builderlabel builderd.hPixelsClass1label builderlabelDbuilder cversion builderx *release Releases object from memory. buildereditbox builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 builderbaseform builderd.hPixelsClass1formbuilderbaseformform builderd.hPixels11Classeditbox1PROCEDURE release RELEASE this ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC AutoSize = .T. FontName = "MS Sans Serif" FontSize = 8 BackStyle = 0 Caption = "Label1" Height = 15 Width = 34 builder = cversion = builderx = BuilderD,CaptionBuilder Name = "builderlabel" labelbuildereditbox1 builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 buildercheckbox builderd.hPixelsClass1checkboxbuildercheckboxcheckbox builderd.h~$ builderhelp builderd.hbuilderoptiongroup)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 cproperty builder cversion builderx lupdateonchange cvalidexpression lautorefresh leditmode lreadonly lallowenter nmaxlength ctype *release Releases a FormSet or Form from memory. *refreshpropertyvalue *disable editbox)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0  builderd.hPixelsClassbuildercommandbuttonClass builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0  builderd.h~$ builderhelp cfilename Height = 23 Width = 24 Picture = graphics\help.bmp StatusBarText = "Displays online Help for builder" ToolTipText = "Help" cfilename = Name = "builderhelp"  builderd.h builderdform builderd.h commandbutton builderd.vcx builderd.h~$ builderdb builderd.hPixels1custom builderdbcustombuilderpageframe!Arial, 0, 9, 5, 15, 12, 13, 3, 0  pageframe builderd.h~$PixelsClass builderd.h~$sFontName = "MS Sans Serif" FontSize = 8 DisabledBackColor = (EVALUATE("RGB("+SUBSTR(RGBSCHEME(15,1),AT(",",RGBSCHEME(15,1),3)+1))) Value = .NULL. IntegralHeight = .T. cproperty = builder = cversion = builderx = BuilderD,BuilderEditBoxBuilder lupdateonchange = .F. cvalidexpression = lautorefresh = .T. nmaxlength = 250 ctype = Name = "buildereditbox" PixelsClass12builderbaseform builderdform pgfBuildertimerbuilderrefreshtimertimerClass builderdform builderd.vcxPixels pageframe builderd.vcxbuilderpageframe builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0  commandbutton pageframe1 builderd.h builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 buildertextbox builderd.h(refreshinputmask refreshpropertyvalue PixelsClass11builder cversion leditmode cproperty lautorefresh builderx lreadonly ctype *release Releases object from memory. *disable  builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 builderclasstextboxPixelsClass1buildertextboxbuilderclasstextboxtextbox builderd.vcxtextbox builderdformbuildertextboxtextbox1cmdClassBrowser commandbutton builderd.vcx builderdformPixelscproperty leditmode builder cversion lupdateonchange cvalidexpression lautorefresh lreadonly builderx ctype *release Releases object from memory. *refreshinputmask *refreshpropertyvalue *disable ErasePage = .T. Top = 75 Left = 8 Width = 437 Height = 208 Tabs = .T. TabIndex = 1 Name = "pgfBuilder" fpgPage1.Name = "fpgPage1" FPGPAGE2.Name = "FPGPAGE2" txtClass builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 buildercombobox builderd.hrefreshpropertyvalue PixelsClassZTop = 12 Left = 330 TabIndex = 2 cversion = cmdClassBrowser Name = "cmdClassBrowser" comboboxbuildercomboboxcomboboxbuilderlaunchclassbrowsertextbox builderd.vcxbuilderclasstextboxcmdHelp1PHeight = 24 Left = 48 TabIndex = 7 Top = 12 Width = 237 Name = "txtClass" 1PROCEDURE Refresh IF NOT DODEFAULT() OR TYPE("thisform.oObject")#"O" OR ISNULL(thisform.oObject) RETURN .F. ENDIF this.ToolTipText=thisform.oObject.BaseClass ENDPROC  optiongroupClass16Top = 12 Left = 420 TabIndex = 5 Name = "cmdHelp" label builderd.h~$Pixels builderdform)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 builderpushpin builderd.hcproperty leditmode builder cversion lupdateonchange cvalidexpression lautorefresh lreadonly builderx ctype *release Releases object from memory. *refreshpropertyvalue *disable buildercommandbuttonClassbuilderformbuilder builderd.hPixels commandbutton builderd.vcx builderhelp builderdformlblClass builderd.vcx1FontName = "MS Sans Serif" FontSize = 8 Alignment = 3 Value = .NULL. Format = "K" Height = 24 Width = 113 DisabledBackColor = (EVALUATE("RGB("+SUBSTR(RGBSCHEME(15,1),AT(",",RGBSCHEME(15,1),3)+1))) cproperty = builder = cversion = lupdateonchange = .T. cvalidexpression = lautorefresh = .T. builderx = BuilderD,BuilderTextBoxBuilder ctype = Name = "buildertextbox" checkboxbuilderpushpincheckbox builderd.h~$bCaption = "Class:" Height = 15 Left = 8 Top = 12 Width = 30 TabIndex = 6 Name = "lblClass"  builderlabel9Top = 12 Left = 360 TabIndex = 3 Name = "cmdBuilder"  builderdform cmdBuilder commandbutton builderd.vcxbuilderlaunchbuilder builderdformtxtNametextbox builderd.vcxcheckboxbHeight = 23 Width = 24 FontName = "MS Sans Serif" FontSize = 8 Picture = graphics\pushpinb.bmp DownPicture = graphics\pushpint.bmp BackStyle = 0 Caption = "" Value = .F. StatusBarText = "Builder form pushpin (toggle on/off)" Style = 1 ToolTipText = "Pushpin" cversion = builder = builderx = BuilderD,BuilderForm Name = "builderpushpin"  optiongroup)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 Class chkPushpinDcversion builder builderx *release Releases object from memory. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 builderlaunchclassbrowser builderd.hbuildercommandbuttonbuilderlaunchclassbrowser commandbutton commandbutton builderdform builderd.vcx builderd.h~$OHeight = 24 Left = 48 TabIndex = 9 Top = 42 Width = 237 Name = "txtName" buildernametextbox9Top = 12 Left = 390 TabIndex = 4 Name = "chkPushpin"  builderd.vcxbuilderpushpin`Caption = "Name:" Height = 15 Left = 8 Top = 42 Width = 33 TabIndex = 8 Name = "lblName"  builderdformlblNamelabel builderd.vcx builderlabel?Top = -100 Left = -100 Interval = 1000 Name = "tmrRefresh"  builderdform builderd.hHeight = 23 Width = 24 Picture = graphics\browser.bmp StatusBarText = "Runs the Class Browser for the class the object is based on" ToolTipText = "Class Browser" Name = "builderlaunchclassbrowser"  tmrRefreshtimer builderd.vcxbuilderrefreshtimer+Top = 47 Left = 419 Name = "oBuilderDB"  builderdform oBuilderDBcustom builderd.vcx builderdbform builderd.vcx builderd.h~$)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 builderlaunchbuilder builderd.hPixelsDbuilder cversion builderx *release Releases object from memory. PixelsbuilderrefreshtimerClassClassbuilderpageframeClassbuildercommandbuttonNcversion builder builderx leditmode *release Release object from memory. buildercommandbutton builderd.h builderd.vcx)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 buildernametextboxPixelstextboxbuilderlaunchbuilder commandbutton*launchbuilder builderoptiongroupbuildertextboxbuildernametextbox builderd.h~$Height = 23 Width = 23 Interval = 1000 builder = cversion = builderx = BuilderD,BuilderForm Name = "builderrefreshtimer" Picture = graphics\builder.bmp StatusBarText = "Launches specific or generic non-BuilderX builder" ToolTipText = "Builder" Name = "builderlaunchbuilder" builder cversion leditmode cproperty lautorefresh builderx lreadonly ctype *release Releases object from memory. *disable cbuilder cversion builderx lskiptabfocus *release Releases object from memory. *skiptabfocus StatusBarText = "Displays the name of the class that the object is based on" ToolTipText = "" Width = 161 cproperty = Class lreadonly = .T. lupdateonchange = .F. Name = "builderclasstextbox" PROCEDURE Refresh IF NOT DODEFAULT() OR TYPE("thisform.oObject")#"O" OR ISNULL(thisform.oObject) RETURN .F. ENDIF this.ToolTipText=thisform.oObject.ClassLibrary ENDPROC Height = 23 Width = 24 FontName = "MS Sans Serif" FontSize = 8 Caption = "" cversion = builder = builderx = BuilderD,CaptionBuilder Name = "buildercommandbutton" ? &&u%U\8%C Cthisform.oObjectbO C ?B-TUTHISFORMOOBJECTTHIS TOOLTIPTEXT CLASSLIBRARYRefresh,1qAa2)&>PROCEDURE addobjects IF NOT DODEFAULT() RETURN .F. ENDIF IF NOT this.oBuilderDB.AddObjects() RETURN .F. ENDIF ENDPROC PROCEDURE Init LPARAMETERS toObject, tuSource, tlSkipSearch IF NOT DODEFAULT(toObject, tuSource, tlSkipSearch) RETURN .F. ENDIF IF NOT this.lRelease this.Show ENDIF ENDPROC PROCEDURE Refresh LOCAL llEnabled llEnabled=(TYPE("thisform.oObject.ClassLibrary")=="C" AND ; NOT EMPTY(thisform.oObject.ClassLibrary)) IF this.Enabled=llEnabled RETURN ENDIF this.Enabled=llEnabled ENDPROC PROCEDURE Click IF thisform.lClass DO (_browser) WITH ; (thisform.oObject.ClassLibrary),(thisform.oObject.Class) ELSE DO (_browser) WITH ; thisform.oObject ENDIF ENDPROC bPROCEDURE release RELEASE this ENDPROC PROCEDURE GotFocus this.Refresh this.lEditMode=.T. ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE LostFocus this.lEditMode=.F. ENDPROC PROCEDURE Refresh IF this.lEditMode NODEFAULT RETURN ENDIF ENDPROC < ##h(%U\8%C Cthisform.oObjectbO C ?B-TUTHISFORMOOBJECTTHIS TOOLTIPTEXT BASECLASSRefresh,1qAa2)#lHeight = 15 Width = 67 FontName = "MS Sans Serif" FontSize = 8 AutoSize = .T. BackStyle = 0 Caption = "CheckBox" Value = .F. DisabledBackColor = (EVALUATE("RGB("+SUBSTR(RGBSCHEME(15,1),AT(",",RGBSCHEME(15,1),3)+1))) builder = cversion = cproperty = lautorefresh = .T. builderx = BuilderD,BuilderCheckBoxBuilder ctype = Name = "buildercheckbox" jDataSession = 2 Top = 0 Left = 0 Height = 295 Width = 453 DoCreate = .T. ShowTips = .T. BorderStyle = 2 Caption = "Builder Form" FontName = "MS Sans Serif" FontSize = 8 MaxButton = .F. MinHeight = 275 MinWidth = 440 Icon = graphics\builder.ico AlwaysOnTop = .T. oobject = .NULL. lautocenter = .T. builder = .NULL. cversion = Builder Base Form 02.01.0001 lautoshow = .T. builderx = BuilderD,BuilderFormBuilder cobjectname = lmultipleinstances = .T. cprogrampath = lsetloadmessage = .T. ndefaultpagecount = 2 cclass = cclasslibrary = chelpfile = nhelpid = 0 Name = "builderbaseform" ErasePage = .T. PageCount = 2 TabStretch = 0 TabStyle = 1 Width = 422 Height = 205 Tabs = .F. builder = cversion = builderx = lskiptabfocus = .T. Name = "builderpageframe" Page1.FontName = "MS Sans Serif" Page1.FontSize = 8 Page1.Caption = "General" Page1.Name = "fpgPage1" Page2.FontName = "MS Sans Serif" Page2.FontSize = 8 Page2.Caption = "Page2" Page2.Name = "fpgPage2"  ggb%/UM1%Cthisform.cVersionbC C 8B-R,:UTHISFORMCVERSIONTC@:TCCthisform.nHelpIDbC Cg6TCCZ%CTC@%CC AC$Help not available for this builder.0 BuilderHelpxB-%C (%C=(CR) <TC%. hT.txt%C0 TCC@%C0 7CFile " " not found.0 BuilderHelpxB-%CG(U*%CCR.chm.hlp.dbf E /:B G(%Cp$:HELP ID &lcHelpID NOWAIT U LCHELPFILELNHELPIDLCHELPIDTHISFORM CHELPFILENHELPIDTHIS CFILENAME CLASSLIBRARY RightClick,Click1qA3"!AqAA1QAqqqAAAaAAAA2)g %^>U<%C B-%C 5B-UTHIS OBUILDERDB ADDOBJECTSV%C 0B-% O UTOOBJECTTUSOURCE TLSKIPSEARCHTHISLRELEASESHOW addobjects,Init1qAQqA3qAA2w3 )NPROCEDURE release RELEASE this ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Init this.Value=thisform.AlwaysOnTop ENDPROC PROCEDURE ProgrammaticChange this.Click ENDPROC PROCEDURE Click thisform.AlwaysOnTop=this.Value ENDPROC Height = 24 StatusBarText = "Specifies the name used to reference an object in code" TabIndex = 4 Width = 161 cproperty = Name lupdateonchange = .F. cvalidexpression = NOT EMPTY(Value) AND NOT ' '$ALLTRIM(Value) Name = "buildernametextbox" FontName = "MS Sans Serif" FontSize = 8 Alignment = 3 Value = .NULL. Height = 24 Width = 113 DisabledBackColor = (EVALUATE("RGB("+SUBSTR(RGBSCHEME(15,1),AT(",",RGBSCHEME(15,1),3)+1))) Format = "K" cproperty = builder = cversion = lupdateonchange = .T. cvalidexpression = lautorefresh = .T. builderx = BuilderD,BuilderComboBoxBuilder ctype = Name = "buildercombobox"  %#RU <UTHIS/BCUNERRORCMETHODNLINETHISFORMERRORTHIS  T0%Cthisform.oObjectbO C +%Ca C@C@  B0%Cthisform.uSourcebO C  BT T a  T U LLLOCKSCREEN LCOBJECTNAMETHISFORM COBJECTNAMEOOBJECT SETOBJECTNAMERELEASEUSOURCE LOCKSCREENREFRESHrelease,Error@Timer1q33AAAAA2!= )O 66E%< U <UTHIS/BCUNERRORCMETHODNLINETHISFORMERRORTHISTUTHISVALUETHISFORM ALWAYSONTOP UTHISCLICKTUTHISFORM ALWAYSONTOPTHISVALUErelease,Error@InitProgrammaticChangeClick1q3313312!=  "C)6?PROCEDURE release RELEASE this ENDPROC PROCEDURE skiptabfocus IF NOT this.lSkipTabFocus OR NOT this.Tabs OR CHRSAW() RETURN .F. ENDIF KEYBOARD "{TAB}" PLAIN ENDPROC PROCEDURE Click this.SkipTabFocus ENDPROC PROCEDURE Init this.SkipTabFocus ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Refresh thisform.RefreshNonActivePages ENDPROC PROCEDURE fpgPage1.Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC   ˎ % z U <UTHISUTT%C C NB0luPropertyValue=thisform.oObject.&lcProperty %CluValuebCTC`%BTa(thisform.oObject.&lcProperty=luValue B%BTa(thisform.oObject.&lcProperty=luValue U LCPROPERTYLUVALUELUPROPERTYVALUETHIS CPROPERTYTEXTTHISFORMOOBJECTLOBJECTUPDATEDTaUTHISREADONLYCUTHISFORM DEFAULTRESETTHIS  UNBUTTONNSHIFTNXCOORDNYCOORDTHISREFRESHP%+BT%CRBTC6%ClcValidExpressionbCC== TCC\TT TTC T T T$%CllResultbL IT aB-U LCVALIDEXPRESSIONVALUEOBJECTOTHISLLRESULTTHISREADONLYCVALIDEXPRESSIONTEXTTHISFORMOOBJECT LEDITMODERTT-%CC AB U LCPROPERTYTHIS CPROPERTY LEDITMODEREFRESHPROPERTYVALUE TaUTHISREFRESH LEDITMODE TaTTM%C C C CluValuebC C B  U LCPROPERTYLUVALUETHISFORMLOBJECTUPDATEDTHIS CPROPERTYTEXTLUPDATEONCHANGEVALIDREFRESHPROPERTYVALUEA%'B*TCthisform.oObject.bTTT% C C C Cthisform.oObject.bU T   BR% . , $C hC h  OT a% m  %T-0luPropertyValue=thisform.oObject.&lcProperty @%C "CluValuebCluPropertyValueb  B+this.Value=thisform.oObject.&lcProperty U LCPROPERTYLUVALUELUPROPERTYVALUETHIS LEDITMODECTYPE CPROPERTYTEXT LAUTOREFRESHTHISFORMOOBJECTVALUEDISABLE LREADONLYREADONLY/BCUNERRORCMETHODNLINETHISFORMERRORTHISI2%CCUO C BTUTHIS CPROPERTYCTYPEVALUE %   2B-2%  C> TC=UNKEYCODE NSHIFTALTCTRLTHIS LALLOWENTER NMAXLENGTHTEXTVALUErelease,refreshpropertyvalue@disable RightClick MouseMoveTValid LostFocuswGotFocus InteractiveChangeDRefreshWError1 Init KeyPress 1q3AAAAAAAA33313qAAAAaAAAqA3qAA33AA3AAABAAA#AAAAA33!A3AqA!A2!L:Xk"& $`,8G@9[RCWLA dj] m 5 qT B ) @ ''4f%U <UTHIS/BCUNERRORCMETHODNLINETHISFORMERRORTHISrelease,Error@1q32!=)'#Height = 22 Width = 24 builder = builderx = cversion = cbuildertable = BuilderD.dbf cbuilderstructuretable = BldStruc.dbf nmaxobjects = 6 nleft = 12 ntop = 8 ntopfactor = 28 nrecno = 0 oclassrecord = .NULL. opagerecord = .NULL. opropertyrecord = .NULL. Name = "builderdb" PROCEDURE release RELEASE this ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Timer LOCAL llLockScreen,lcObjectName lcObjectName=thisform.cObjectName IF TYPE("thisform.oObject")#"O" OR ISNULL(thisform.oObject) IF NOT thisform.SetObject(.NULL.,,.T.) OR ; NOT LOWER(thisform.oObject.Name)==LOWER(lcObjectName) thisform.Release RETURN ENDIF ENDIF IF TYPE("thisform.uSource")=="O" AND ISNULL(thisform.uSource) thisform.Release RETURN ENDIF llLockScreen=thisform.LockScreen thisform.LockScreen=.T. thisform.Refresh thisform.LockScreen=llLockScreen ENDPROC o VV[%BYU0,%Cthisform.oObject.BuilderbC-T TCBuilderh-%Cthisform.oObject.BuilderXbCTTC,,TCCC C\6@%C @)TX T T T- Hi; C C C C @  :2:,%Cthisform.oObject.BuilderbC[ %5TWCBuilder )% CC@C @   &%C CthisformbO BT 8%CCthisformbO C @C@ ) TBUTLACTIVATETHISFORM LCBUILDER LCOBJECTNAME LLCHANGEDLCCLASSLNATPOSTHISFORMOOBJECTBUILDERCLASSRESETTODEFAULTVISIBLENAMESHOW COBJECTNAME SETOBJECTs=TCthisform.oObject.BuilderbU C %\BTU LLENABLEDTHISFORMOOBJECTBUILDERTHISENABLEDJ%Cthisform.oObject.BuilderbC C C :R,:/Object does not have a valid "Builder" propertyB)%C _BuilderEditbLC <7 Ta  T-UTHISFORMOOBJECTBUILDER _BUILDEREDITTHIS LAUNCHBUILDERCaUTHIS LAUNCHBUILDER launchbuilder,Refresh  RightClickClick1qq11A1a1AA1AAAAaAAAA3qAAA3AAqqA32~-R34s>@N)VAutoSize = .T. ButtonCount = 2 BackStyle = 0 Value = 1 Height = 44 Width = 65 BackColor = (EVALUATE("RGB("+SUBSTR(RGBSCHEME(15,1),AT(",",RGBSCHEME(15,1),3)+1))) builder = cversion = cproperty = lautorefresh = .T. builderx = BuilderD,BuilderOptionGroupBuilder ctype = Name = "builderoptiongroup" Option1.FontName = "MS Sans Serif" Option1.FontSize = 8 Option1.Caption = "Option1" Option1.Value = 1 Option1.Height = 15 Option1.Left = 5 Option1.Top = 5 Option1.Width = 55 Option1.AutoSize = .T. Option1.Name = "Option1" Option2.FontName = "MS Sans Serif" Option2.FontSize = 8 Option2.Caption = "Option2" Option2.Height = 15 Option2.Left = 5 Option2.Top = 24 Option2.Width = 55 Option2.AutoSize = .T. Option2.Name = "Option2" 0builder builderx cversion cbuildertable cbuilderstructuretable nmaxobjects nleft ntop ntopfactor nrecno oclassrecord opagerecord opropertyrecord *release Releases a FormSet or Form from memory. *alinks *evallinks *openbuildertable *addobjects *transformlinks *inheritproperties  v%r7U -%C CtoObjectbO %%CtoObjectbOC T%C 9R,: ' Error Mode: Object parameter requiredB-TC`% TC`%%%CCtoObjectbO 0R,:  Error Mode: Nothing selectedB-TT T C,%C this.oObjectbO C nT T -T T B-!T   % T  TC ]T  T T T T- TC` T-%%   % TC`%TCC@&%C@C @  TaT  T-T&TC  C@ TC: %C B-UTOOBJECTTUSOURCE TLSKIPSEARCH LNSELOBJCOUNT LCOBJECTNAMELCNAMELLCLASSLASELOBJTHISCAPTIONUSOURCEOOBJECTLCLASSCCLASS CCLASSLIBRARYRELEASENAMECLASS CLASSLIBRARY COBJECTNAMETXTNAMEVALUECMDCLASSBROWSERENABLEDTHISFORM CMDBUILDER ADDOBJECTS#%Cthis.pgfBuilderbO1B-(T%.U LNCOUNTTHIS PGFBUILDER PAGECOUNTPAGES BACKCOLORTHISFORM ACTIVEPAGEREFRESH:,%C this.oObjectbO C 3B-UTHISOOBJECT  TTC.%TC:%TC= %$TC24 CfC@6 BCU TCFILENAMETLPLATFORMTYPE LCFILENAMELNATPOSLNATPOS2  TC\&TCCC=6 %$TC24 CfC@6 BU TCFILENAME LPLATTYPE LCFILENAMELNATPOSz %C2 B TTC:%}TC\ %TC %$TC24 CfC@6,TCCC\CC\D\+C=.4TCC\+CR.jTCCC>= BU TCFILENAME TLTRIMEXTTLPLATFORMTYPE LCFILENAMELNATPOSTHISTRIMEXT%"G&(Loading  ...UTHISCAPTION&%CtoObject.cPropertybCCB-TC`%.Ch Ch Ch Ch B-2TCCC   6!_%CT(None)g%CReset "" property to default?C C Default value = $ xB-C T T - T UTOOBJECT LCPROPERTYLCDEFAULTVALUE LLEDITMODE CPROPERTYTHISOOBJECTLCLASS PARENTCLASSCLASSCAPTIONRESETTODEFAULT LEDITMODEREFRESHu%LTTaT-B-"G&(Loading  ...UNSTYLETHISLRELEASEOOBJECT LAUTORELEASE LAUTOSHOWCAPTIONPTaT-TTG(G&(UTHISLRELEASEVISIBLEUSOURCEOOBJECT DATASESSIONID_% *T% XTUTHISHEIGHT MINHEIGHTWIDTHMINWIDTH TaR %R  B-R %CoObjectbO TgTCEC C  Builder:  C  Object:  C  Method: TCE%%C' ... -TC Line: CCZ%C |TC C %C xTa  B-U NERRORCMETHODNLINEOOBJECT LCERRORMSG LCCODELINEMSGTHISLERRORLRELEASERELEASENAMECAPTION*7 Tt&FG&(U _OBUILDERTHIS 7 T '% C  CTC @TC @(9 ?TC9<%C @C lInitializedh  ;T a%)T B%C  T G&(T aBT a% T a T aT -UTOOBJECTTUSOURCE TLSKIPSEARCHOFORMLCCLASSLCNAMELNCOUNT LAINSTANCES _OBUILDERTHISLMULTIPLEINSTANCESCLASSNAME FORMCOUNTFORMS LINITIALIZEDLRELEASE WINDOWSTATESHOW SETOBJECTOOBJECT LOCKSCREEN LAUTOCENTER AUTOCENTERREFRESHq%0 B-7 T T-FG&(U LNPAGECOUNT LNACTIVEPAGELNCOUNTTHISLRELEASERELEASE _OBUILDERREFRESH LOCKSCREENB %;%C7 UNKEYCODE NSHIFTALTCTRLTHIS QUERYUNLOADRELEASE>,%CC this.oObjectbO 7B-UTHISOOBJECTG2Gk(MACHINEG GG G$(G_ Gi G;(.G.7 TTC% U _OBUILDERTHIS CPROGRAMPATHTRIMFILE CLASSLIBRARYLSETLOADMESSAGESETLOADMESSAGEt&G&(U\%C B-TaT-TTUTHIS QUERYUNLOADLRELEASEVISIBLEUSOURCEOOBJECT;TaT-TTUTHISLRELEASEVISIBLEUSOURCEOOBJECT setobject,refreshnonactivepages addobjectstrimextHtrimfileWtrimpath setloadmessage defaultreset Show DestroySResizeErrorn DeactivateInitActivateKeyPressRefreshLoadoUnloadnRelease QueryUnload11Q1AqA!QQqA1AAAAqAaaaA1!QQAaaAAA1ba!qA3q2qAqAAaA3qA311aAAAA32aAA3A1aAQAAAAAA3!3qbqA!qA"1ArqAAA3qAqA!3a3q1Aq1A31QqAQAsQAAqA3qQa31rq!!AAAAAAAaAAA3qAqa3AA3AqA3a!aaaaaaqA3Qa3!AqA32HNTD ]Xb cg  up$ #Fc &Po-- L<-FHM&`)qe2p) ?%iUxBTCthisform.oObject.ClassLibrarybC C %aBTU LLENABLEDTHISFORMOOBJECT CLASSLIBRARYTHISENABLEDR%3#@K@UTHISFORMLCLASSOOBJECT CLASSLIBRARYCLASSRefresh,Click1q#AAA32A2 )PROCEDURE RightClick IF TYPE("thisform.cVersion")#"C" OR EMPTY(thisform.cVersion) RETURN .F. ENDIF WAIT WINDOW thisform.cVersion NOWAIT ENDPROC PROCEDURE Click LOCAL lcHelpFile,lnHelpID,lcHelpID lcHelpFile=LOWER(thisform.cHelpFile) lnHelpID=IIF(TYPE("thisform.nHelpID")=="C",VAL(thisform.nHelpID),thisform.nHelpID) lcHelpID=ALLTRIM(STR(lnHelpID)) IF EMPTY(lcHelpFile) lcHelpFile=LOWER(this.cFileName) ENDIF IF EMPTY(lcHelpFile) AND EMPTY(lnHelpID) MESSAGEBOX([Help not available for this builder.],48,"BuilderHelp") RETURN .F. ENDIF IF NOT EMPTY(lcHelpFile) IF LEFT(lcHelpFile,1)=="(" AND RIGHT(lcHelpFile,1)==")" lcHelpFile=EVALUATE(lcHelpFile) ENDIF IF NOT "."$lcHelpFile lcHelpFile=lcHelpFile+".txt" ENDIF IF NOT FILE(lcHelpFile) lcHelpFile=LOWER(FULLPATH(lcHelpFile,thisform.ClassLibrary)) IF NOT FILE(lcHelpFile) MESSAGEBOX([File "]+lcHelpFile+[" not found.],48,"BuilderHelp") RETURN .F. ENDIF ENDIF ENDIF IF EMPTY(lcHelpFile) SET HELP TO ELSE IF NOT INLIST(RIGHT(lcHelpFile,4),".chm",".hlp",".dbf") MODIFY FILE (lcHelpFile) NOEDIT NOWAIT RETURN ENDIF SET HELP TO (lcHelpFile) ENDIF IF EMPTY(lnHelpID) HELP NOWAIT ELSE HELP ID &lcHelpID NOWAIT ENDIF ENDPROC  u \ \ %)MU <UTHIST-UTHISENABLED  UNBUTTONNSHIFTNXCOORDNYCOORDTHISREFRESH^TaTT-%CC C C rB0luPropertyValue=thisform.oObject.&lcProperty TCluPropertyValueb%CLN B%LT%!BTa(thisform.oObject.&lcProperty=luValue U LCPROPERTYLUVALUELUPROPERTYVALUELCTYPETHISFORMLOBJECTUPDATEDTHIS CPROPERTYVALUEOOBJECTJ%'B*TCthisform.oObject.bTTZ% C C C &CCthisform.oObject.bLN T  BR% . , $C hC h  UT a% s  % T a0luPropertyValue=thisform.oObject.&lcProperty #%CluPropertyValuebLTC6%C  3BTU LCPROPERTYLUVALUELUPROPERTYVALUETHIS LEDITMODECTYPE CPROPERTYVALUE LAUTOREFRESHTHISFORMOOBJECTDISABLE LREADONLYENABLED/BCUNERRORCMETHODNLINETHISFORMERRORTHISI2%CCUO C BTUTHIS CPROPERTYCTYPEVALUECUTHISFORM DEFAULTRESETTHIS/BCUNERRORCMETHODNLINETHISFORMERRORTHIS/BCUNERRORCMETHODNLINETHISFORMERRORTHISrelease,disable@ MouseMovedInteractiveChangeRefreshErroraInit RightClick/ Option1.Errore Option2.Error1q33131AAAA!!AAA3AAAAAA#AAA1AAA33!A3332!?Qq (>!PA<VE\GZ`J~f)\ %PROCEDURE launchbuilder LPARAMETERS tlActivateThisForm LOCAL lcBuilder,lcObjectName,llChanged,lcClass,lnAtPos IF TYPE("thisform.oObject.Builder")=="C" lcBuilder=thisform.oObject.Builder llChanged=PEMSTATUS(thisform.oObject,"Builder",0) IF TYPE("thisform.oObject.BuilderX")#"C" thisform.oObject.Builder="" ENDIF lnAtPos=AT(",",lcBuilder) lcClass=LOWER(ALLTRIM(IIF(lnAtPos=0,lcBuilder,SUBSTR(lcBuilder,lnAtPos+1)))) IF LOWER(thisform.Class)==lcClass thisform.oObject.Builder="" ENDIF ELSE lcBuilder=.NULL. lcClass="" llChanged=.F. ENDIF DO CASE CASE NOT ISNULL(lcBuilder) AND NOT EMPTY(lcBuilder) AND ; NOT EMPTY(thisform.oObject.Builder) AND NOT LOWER(thisform.Class)==lcClass DO (_builder) WITH (thisform.oObject),"",(lcBuilder) OTHERWISE DO (_builder) WITH (thisform.oObject),"",.NULL. IF TYPE("thisform.oObject.Builder")=="C" IF llChanged thisform.oObject.Builder=lcBuilder ELSE thisform.oObject.ResetToDefault("Builder") ENDIF ENDIF IF tlActivateThisForm AND thisform.Visible AND ; NOT LOWER(WONTOP())==LOWER(thisform.Name) thisform.Show ENDIF ENDCASE IF NOT ISNULL(thisform) AND TYPE("thisform")=="O" RETURN ENDIF lcObjectName=thisform.cObjectName thisform.SetObject IF ISNULL(thisform) OR TYPE("thisform")#"O" OR ; NOT LOWER(thisform.Name)==LOWER(lcObjectName) thisform=.NULL. RETURN ENDIF ENDPROC PROCEDURE Refresh LOCAL llEnabled llEnabled=(TYPE("thisform.oObject.Builder")=="U" OR ; NOT ISNULL(thisform.oObject.Builder)) IF this.Enabled=llEnabled RETURN ENDIF this.Enabled=llEnabled ENDPROC PROCEDURE RightClick IF TYPE("thisform.oObject.Builder")#"C" OR ; EMPTY(thisform.oObject.Builder) OR ; ISNULL(thisform.oObject.Builder) WAIT WINDOW [Object does not have a valid "Builder" property] NOWAIT RETURN ENDIF IF TYPE("_BuilderEdit")#"L" OR ISNULL(_BuilderEdit) RELEASE _BuilderEdit PUBLIC _BuilderEdit ENDIF _BuilderEdit=.T. this.LaunchBuilder _BuilderEdit=.F. ENDPROC PROCEDURE Click this.LaunchBuilder(.T.) ENDPROC  A %  U <UTHISTTC`%C C TB0luPropertyValue=thisform.oObject.&lcProperty % C%BT a/thisform.oObject.&lcProperty=lcDisplayValue B H  CC T%?B  NT %}B2T T a(thisform.oObject.&lcProperty=luValue U LCPROPERTYLCDISPLAYVALUELUPROPERTYVALUELUVALUETHIS CPROPERTY DISPLAYVALUETHISFORMOOBJECTCTYPELOBJECTUPDATED LISTINDEXVALUETaUTHISREADONLY  UNBUTTONNSHIFTNXCOORDNYCOORDTHISREFRESHt&TCN6&%CCUO mTTUTHISVALUECTYPE CPROPERTY LISTINDEX DISPLAYVALUE/BCUNERRORCMETHODNLINETHISFORMERRORTHIS%+B*TCthisform.oObject.bTTT% C C C Cthisform.oObject.bU &&T CN6T T BR% . , $C hC h  Ta% %T-(luValue=thisform.oObject.&lcProperty 0luPropertyValue=thisform.oObject.&lcProperty O%CluValuebCluPropertyValueb!NC  &T CN6T T B H C5%BT T N% bBT T 2% B&T CN6T TU LCPROPERTYLCDISPLAYVALUELUPROPERTYVALUELUVALUETHIS LEDITMODECTYPE CPROPERTY DISPLAYVALUE LAUTOREFRESHTHISFORMOOBJECTVALUE LISTINDEXDISABLE LREADONLYREADONLY LISTCOUNTuTaT;%C C C C dB U LCPROPERTYTHISFORMLOBJECTUPDATEDTHIS CPROPERTY DISPLAYVALUELUPDATEONCHANGEVALIDREFRESHPROPERTYVALUE TaUTHISREFRESH LEDITMODERTT-%CC AB U LCPROPERTYTHIS CPROPERTY LEDITMODEREFRESHPROPERTYVALUEd%/BT%CVBTC6%ClcValidExpressionbCC== TCC\TTT TTC T T T$%CllResultbL ]T aB-U LCVALIDEXPRESSIONVALUE DISPLAYVALUEOBJECTOTHISLLRESULTTHISREADONLYCVALIDEXPRESSIONTHISFORMOOBJECT LEDITMODECUTHISFORM DEFAULTRESETTHISrelease,refreshpropertyvalue@disable MouseMoveInit&ErrorRefresh8InteractiveChangeGotFocus LostFocus Valid RightClick 1q31!AAQAAAAQAAQAAA3313aaA331AAABAaAA#AAAAaAAQAAQAAAAAAaA3qAA33qAA3AAAAaAAAqA32!L%#CV(%v,(`2.|:1 @k. # sB d v  ~; )P 77 %#^BU <UTHIST-UTHISENABLEDG2%CCUO C @T-UTHIS CPROPERTYCTYPEVALUE/BCUNERRORCMETHODNLINETHISFORMERRORTHIS TaUTHISREFRESH LEDITMODET-UTHIS LEDITMODE%'B*TCthisform.oObject.bTTT% C C C Cthisform.oObject.bL T-  BR% . , $C hC h  MT a% k  % T a0luPropertyValue=thisform.oObject.&lcProperty %C  BTU LCPROPERTYLUVALUELUPROPERTYVALUETHIS LEDITMODECTYPE CPROPERTYVALUE LAUTOREFRESHTHISFORMOOBJECTDISABLE LREADONLYENABLEDTaTT-%CC C C nB0luPropertyValue=thisform.oObject.&lcProperty .%CluPropertyValuebL BTa(thisform.oObject.&lcProperty=luValue U LCPROPERTYLUVALUELUPROPERTYVALUETHISFORMLOBJECTUPDATEDTHIS CPROPERTYVALUEOOBJECT  UNBUTTONNSHIFTNXCOORDNYCOORDTHISREFRESHCUTHISFORM DEFAULTRESETTHISrelease,disable@InitdErrorGotFocus0 LostFocusiRefreshInteractiveChange! MouseMove RightClick1q33!A3333AAABAAA#AAAAA3AAAA3132!?Ql F e /HB=SU@t[)7D ++ T%ZU <UTHIS?"%  C )B-\{TAB};UTHIS LSKIPTABFOCUSTABS UTHIS SKIPTABFOCUS UTHIS SKIPTABFOCUS/BCUNERRORCMETHODNLINETHISFORMERRORTHIS UTHISFORMREFRESHNONACTIVEPAGES/BCUNERRORCMETHODNLINETHISFORMERRORTHISrelease, skiptabfocus@ClickInitErrorRefreshJfpgPage1.Error|1q3!qA333332!D  !y4)+M 44k%5U <UTHIS TaUTHISREFRESH LEDITMODE/BCUNERRORCMETHODNLINETHISFORMERRORTHIST-UTHIS LEDITMODE%BUTHIS LEDITMODErelease,GotFocus@Errory LostFocusRefresh1q3333AAA2!@b~  (W)4PROCEDURE release RELEASE this ENDPROC PROCEDURE disable this.Enabled=.F. ENDPROC PROCEDURE MouseMove LPARAMETERS nButton, nShift, nXCoord, nYCoord this.Refresh ENDPROC PROCEDURE InteractiveChange LOCAL lcProperty,luValue,luPropertyValue,lcType thisform.lObjectUpdated=.T. lcProperty=this.cProperty luValue=this.Value IF ISNULL(luValue) OR ISNULL(lcProperty) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) RETURN ENDIF luPropertyValue=thisform.oObject.&lcProperty lcType=TYPE("luPropertyValue") IF NOT INLIST(lcType,"L","N") RETURN ENDIF IF lcType=="L" luValue=(luValue>=2) ENDIF IF luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue ENDPROC PROCEDURE Refresh LOCAL lcProperty,luValue,luPropertyValue IF this.lEditMode NODEFAULT RETURN ENDIF this.cType=TYPE("thisform.oObject."+this.cProperty) lcProperty=this.cProperty luValue=this.Value IF (NOT this.lAutoRefresh AND NOT ISNULL(luValue)) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) OR ; NOT INLIST(TYPE("thisform.oObject."+lcProperty),"L","N") NODEFAULT this.Value=0 this.Disable RETURN ENDIF IF NOT this.lReadOnly AND NOT "."$lcProperty AND NOT ","$lcProperty AND ; (PEMSTATUS(thisform.oObject,lcProperty,1) OR ; PEMSTATUS(thisform.oObject,lcProperty,2)) this.lReadOnly=.T. ENDIF IF this.lReadOnly this.Disable ELSE IF NOT this.Enabled this.Enabled=.T. ENDIF ENDIF luPropertyValue=thisform.oObject.&lcProperty IF TYPE("luPropertyValue")=="L" luPropertyValue=IIF(luPropertyValue,2,1) ENDIF IF NOT ISNULL(luValue) AND luValue==luPropertyValue RETURN ENDIF this.Value=luPropertyValue ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Init IF EMPTY(this.cProperty) OR INLIST(this.cType,"U","O") OR ISNULL(this.Value) this.Value=0 ENDIF ENDPROC PROCEDURE RightClick thisform.DefaultReset(this) ENDPROC PROCEDURE Option1.Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Option2.Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE release RELEASE this ENDPROC PROCEDURE disable this.Enabled=.F. ENDPROC PROCEDURE Init IF EMPTY(this.cProperty) OR INLIST(this.cType,"U","O") OR ISNULL(this.Value) this.Value=.F. ENDIF ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE GotFocus this.Refresh this.lEditMode=.T. ENDPROC PROCEDURE LostFocus this.lEditMode=.F. ENDPROC PROCEDURE Refresh LOCAL lcProperty,luValue,luPropertyValue IF this.lEditMode NODEFAULT RETURN ENDIF this.cType=TYPE("thisform.oObject."+this.cProperty) lcProperty=this.cProperty luValue=this.Value IF (NOT this.lAutoRefresh AND NOT ISNULL(luValue)) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) OR TYPE("thisform.oObject."+lcProperty)#"L" NODEFAULT this.Value=.F. this.Disable RETURN ENDIF IF NOT this.lReadOnly AND NOT "."$lcProperty AND NOT ","$lcProperty AND ; (PEMSTATUS(thisform.oObject,lcProperty,1) OR ; PEMSTATUS(thisform.oObject,lcProperty,2)) this.lReadOnly=.T. ENDIF IF this.lReadOnly this.Disable ELSE IF NOT this.Enabled this.Enabled=.T. ENDIF ENDIF luPropertyValue=thisform.oObject.&lcProperty IF NOT ISNULL(luValue) AND luValue==luPropertyValue RETURN ENDIF this.Value=luPropertyValue ENDPROC PROCEDURE InteractiveChange LOCAL lcProperty,luValue,luPropertyValue thisform.lObjectUpdated=.T. lcProperty=this.cProperty luValue=this.Value IF ISNULL(luValue) OR ISNULL(lcProperty) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) RETURN ENDIF luPropertyValue=thisform.oObject.&lcProperty IF TYPE("luPropertyValue")=="L" AND ; luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue ENDPROC PROCEDURE MouseMove LPARAMETERS nButton, nShift, nXCoord, nYCoord this.Refresh ENDPROC PROCEDURE RightClick thisform.DefaultReset(this) ENDPROC DoCreate = .T. Caption = "BuilderDB (Dynamic Builder) Form" Visible = .T. cversion = BuilderDB (Dynamic Builder) Form 02.01.0002 lsetloadmessage = .F. ndefaultpagecount = 0 lmultipleinstances = .F. Name = "builderdform"  PROCEDURE release RELEASE this ENDPROC PROCEDURE refreshinputmask IF TYPE("this.Value")=="C" this.InputMask=REPLICATE("X",254) ELSE this.InputMask="" ENDIF ENDPROC PROCEDURE refreshpropertyvalue LOCAL lcProperty,luValue,luPropertyValue lcProperty=this.cProperty luValue=this.Value IF ISNULL(luValue) OR ISNULL(thisform.oObject) RETURN ENDIF luPropertyValue=thisform.oObject.&lcProperty IF TYPE("luValue")=="C" luValue=TRIM(luValue) IF luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue RETURN ENDIF IF luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue ENDPROC PROCEDURE disable this.ReadOnly=.T. ENDPROC PROCEDURE MouseMove LPARAMETERS nButton, nShift, nXCoord, nYCoord this.Refresh ENDPROC PROCEDURE Init IF EMPTY(this.cProperty) OR INLIST(this.cType,"U","O") OR ISNULL(this.Value) this.Value="" ENDIF ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE ProgrammaticChange this.RefreshInputMask ENDPROC PROCEDURE Refresh LOCAL lcProperty,luValue,luPropertyValue IF this.lEditMode NODEFAULT RETURN ENDIF this.cType=TYPE("thisform.oObject."+this.cProperty) lcProperty=this.cProperty luValue=this.Value IF (NOT this.lAutoRefresh AND NOT ISNULL(luValue)) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) OR TYPE("thisform.oObject."+lcProperty)=="U" NODEFAULT this.Value="" this.Disable RETURN ENDIF IF NOT this.lReadOnly AND NOT "."$lcProperty AND NOT ","$lcProperty AND ; (PEMSTATUS(thisform.oObject,lcProperty,1) OR ; PEMSTATUS(thisform.oObject,lcProperty,2)) this.lReadOnly=.T. ENDIF IF this.lReadOnly this.Disable ELSE IF this.ReadOnly this.ReadOnly=.F. ENDIF ENDIF luPropertyValue=thisform.oObject.&lcProperty IF NOT ISNULL(luValue) AND TYPE("luValue")==TYPE("luPropertyValue") AND ; luValue==luPropertyValue RETURN ENDIF this.Value=thisform.oObject.&lcProperty ENDPROC PROCEDURE InteractiveChange LOCAL lcProperty,luValue thisform.lObjectUpdated=.T. lcProperty=this.cProperty luValue=this.Value IF ISNULL(luValue) OR NOT this.lUpdateOnChange OR ISNULL(lcProperty) OR ; EMPTY(lcProperty) OR TYPE("luValue")#"C" OR NOT this.Valid() RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE GotFocus this.Refresh this.lEditMode=.T. ENDPROC PROCEDURE LostFocus LOCAL lcProperty lcProperty=this.cProperty this.lEditMode=.F. IF ISNULL(lcProperty) OR EMPTY(lcProperty) RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE Valid LOCAL lcValidExpression,Value,Object,oTHIS,llResult IF this.ReadOnly RETURN ENDIF lcValidExpression=this.cValidExpression IF EMPTY(lcValidExpression) RETURN ENDIF lcValidExpression=ALLTRIM(lcValidExpression) IF TYPE("lcValidExpression")=="C" AND LEFT(lcValidExpression,1)=="=" lcValidExpression=ALLTRIM(SUBSTR(lcValidExpression,2)) ENDIF Value=this.Value Object=thisform.oObject oTHIS=this llResult=EVALUATE(lcValidExpression) Value=.NULL. Object=.NULL. oTHIS=.NULL. IF TYPE("llResult")#"L" OR NOT llResult this.lEditMode=.T. RETURN .F. ENDIF ENDPROC PROCEDURE RightClick thisform.DefaultReset(this) ENDPROC PROCEDURE release RELEASE this ENDPROC PROCEDURE refreshpropertyvalue LOCAL lcProperty,lcDisplayValue,luPropertyValue,luValue lcProperty=this.cProperty lcDisplayValue=TRIM(this.DisplayValue) IF ISNULL(lcDisplayValue) OR ISNULL(thisform.oObject) RETURN ENDIF luPropertyValue=thisform.oObject.&lcProperty IF this.cType=="C" IF luPropertyValue==lcDisplayValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=lcDisplayValue RETURN ENDIF DO CASE CASE this.cType="C" luValue=lcDisplayValue IF luValue==luPropertyValue RETURN ENDIF CASE this.cType=="N" luValue=this.ListIndex IF luValue=luPropertyValue RETURN ENDIF OTHERWISE luValue=this.Value ENDCASE thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue ENDPROC PROCEDURE disable this.ReadOnly=.T. ENDPROC PROCEDURE MouseMove LPARAMETERS nButton, nShift, nXCoord, nYCoord this.Refresh ENDPROC PROCEDURE Init this.Value=IIF(this.cType=="N",0,"") IF EMPTY(this.cProperty) OR INLIST(this.cType,"U","O") this.ListIndex=-1 this.DisplayValue="" ENDIF ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Refresh LOCAL lcProperty,lcDisplayValue,luPropertyValue,luValue IF this.lEditMode NODEFAULT RETURN ENDIF this.cType=TYPE("thisform.oObject."+this.cProperty) lcProperty=this.cProperty lcDisplayValue=this.DisplayValue IF (NOT this.lAutoRefresh AND NOT ISNULL(lcDisplayValue)) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) OR TYPE("thisform.oObject."+lcProperty)=="U" NODEFAULT this.Value=IIF(this.cType=="N",0,"") this.ListIndex=-1 this.DisplayValue="" this.Disable RETURN ENDIF IF NOT this.lReadOnly AND NOT "."$lcProperty AND NOT ","$lcProperty AND ; (PEMSTATUS(thisform.oObject,lcProperty,1) OR ; PEMSTATUS(thisform.oObject,lcProperty,2)) this.lReadOnly=.T. ENDIF IF this.lReadOnly this.Disable ELSE IF this.ReadOnly this.ReadOnly=.F. ENDIF ENDIF luValue=thisform.oObject.&lcProperty luPropertyValue=thisform.oObject.&lcProperty IF TYPE("luValue")#TYPE("luPropertyValue") OR (this.cType=="N" AND NOT ; BETWEEN(luPropertyValue,-1,this.ListCount)) NODEFAULT this.Value=IIF(this.cType=="N",0,"") this.ListIndex=-1 this.DisplayValue="" this.Disable RETURN ENDIF DO CASE CASE this.cType=="C" IF lcDisplayValue==luPropertyValue RETURN ENDIF this.Value=luValue this.DisplayValue=luValue CASE this.cType=="N" IF this.ListIndex==luPropertyValue RETURN ENDIF this.ListIndex=luValue this.Value=luValue OTHERWISE IF this.Value==luPropertyValue RETURN ENDIF this.Value=IIF(this.cType=="N",0,"") this.ListIndex=-1 this.DisplayValue="" ENDCASE ENDPROC PROCEDURE InteractiveChange LOCAL lcProperty thisform.lObjectUpdated=.T. lcProperty=this.cProperty IF ISNULL(this.DisplayValue) OR NOT this.lUpdateOnChange OR ISNULL(lcProperty) OR ; EMPTY(lcProperty) OR NOT this.Valid() RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE GotFocus this.Refresh this.lEditMode=.T. ENDPROC PROCEDURE LostFocus LOCAL lcProperty lcProperty=this.cProperty this.lEditMode=.F. IF ISNULL(lcProperty) OR EMPTY(lcProperty) RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE Valid LOCAL lcValidExpression,Value,DisplayValue,Object,oTHIS,llResult IF this.ReadOnly RETURN ENDIF lcValidExpression=this.cValidExpression IF EMPTY(lcValidExpression) RETURN ENDIF lcValidExpression=ALLTRIM(lcValidExpression) IF TYPE("lcValidExpression")=="C" AND LEFT(lcValidExpression,1)=="=" lcValidExpression=ALLTRIM(SUBSTR(lcValidExpression,2)) ENDIF Value=this.Value DisplayValue=this.DisplayValue Object=thisform.oObject oTHIS=this llResult=EVALUATE(lcValidExpression) Value=.NULL. Object=.NULL. oTHIS=.NULL. IF TYPE("llResult")#"L" OR NOT llResult this.lEditMode=.T. RETURN .F. ENDIF ENDPROC PROCEDURE RightClick thisform.DefaultReset(this) ENDPROC PROCEDURE setobject LPARAMETERS toObject,tuSource,tlSkipSearch LOCAL lnSelObjCount,lcObjectName,lcName,llClass LOCAL laSelObj[1] IF tlSkipSearch OR PARAMETERS()=1 OR TYPE("toObject")=="O" IF TYPE("toObject")=="O" OR ISNULL(toObject) laSelObj[1]=toObject ELSE IF NOT ISNULL(toObject) WAIT WINDOW this.Caption+ ; " Error Mode: Object parameter required" NOWAIT ENDIF RETURN .F. ENDIF ELSE lnSelObjCount=ASELOBJ(laSelObj) IF lnSelObjCount=0 DIMENSION laSelObj[1] lnSelObjCount=ASELOBJ(laSelObj,1) IF lnSelObjCount=0 IF ISNULL(toObject) OR TYPE("toObject")#"O" WAIT WINDOW this.Caption+ ; " Error Mode: Nothing selected" NOWAIT RETURN .F. ENDIF laSelObj[1]=toObject ENDIF ENDIF ENDIF this.uSource=tuSource this.oObject=laSelObj[1] IF TYPE("this.oObject")#"O" OR ISNULL(this.oObject) this.oObject=.NULL. this.lClass=.F. this.cClass="" this.cClassLibrary="" this.Release RETURN .F. ENDIF this.lClass=(this.oObject.Name==this.oObject.Class) IF this.lClass this.cClass=this.oObject.Name this.cClassLibrary=SYS(1271,this.oObject) ELSE this.cClass=this.oObject.Class this.cClassLibrary=this.oObject.ClassLibrary ENDIF lcObjectName=this.oObject.Name this.cObjectName=lcObjectName laSelObj=.F. DIMENSION laSelObj[1] lnSelObjCount=ASELOBJ(laSelObj) llClass=.F. IF NOT llClass AND (lnSelObjCount=0 OR lnSelObjCount=1) IF lnSelObjCount=0 DIMENSION laSelObj[1] lnSelObjCount=ASELOBJ(laSelObj,1) ENDIF IF lnSelObjCount=1 lcName=LOWER(laSelObj[1].Name) IF lcName==LOWER(lcObjectName) AND lcName==LOWER(this.oObject.Class) llClass=.T. ENDIF ENDIF ENDIF this.lClass=llClass laSelObj=.F. this.txtName.Value=lcName this.cmdClassBrowser.Enabled=(NOT EMPTY(thisform.oObject.ClassLibrary) AND ; NOT EMPTY(_browser)) this.cmdBuilder.Enabled=(NOT EMPTY(_builder)) IF NOT this.AddObjects() RETURN .F. ENDIF ENDPROC PROCEDURE refreshnonactivepages LOCAL lnCount IF TYPE("this.pgfBuilder")#"O" RETURN .F. ENDIF FOR lnCount = 1 TO this.pgfBuilder.PageCount this.pgfBuilder.Pages[lnCount].BackColor=thisform.BackColor IF lnCount=this.pgfBuilder.ActivePage LOOP ENDIF this.pgfBuilder.Pages[lnCount].Refresh ENDFOR ENDPROC PROCEDURE addobjects IF TYPE("this.oObject")#"O" OR ISNULL(this.oObject) RETURN .F. ENDIF ENDPROC PROCEDURE trimext LPARAMETERS tcFileName,tlPlatformType LOCAL lcFileName,lnAtPos,lnAtPos2 lcFileName=tcFileName lnAtPos=RAT(".",lcFileName) IF lnAtPos>0 lnAtPos2=RAT(":",lcFileName) IF lnAtPos>lnAtPos2 lcFileName=LEFT(lcFileName,lnAtPos-1) ENDIF ENDIF IF tlPlatformType lcFileName=IIF(_dos OR _unix,UPPER(lcFileName),LOWER(lcFileName)) ENDIF RETURN ALLTRIM(lcFileName) ENDPROC PROCEDURE trimfile LPARAMETERS tcFileName,lPlatType LOCAL lcFileName,lnAtPos lnAtPos=RAT("\",tcFileName) lcFileName=ALLTRIM(IIF(lnAtPos=0,tcFileName,LEFT(tcFileName,lnAtPos))) IF lPlatType lcFileName=IIF(_dos OR _unix,UPPER(lcFileName),LOWER(lcFileName)) ENDIF RETURN lcFileName ENDPROC PROCEDURE trimpath LPARAMETERS tcFileName,tlTrimExt,tlPlatformType LOCAL lcFileName,lnAtPos IF EMPTY(tcFileName) RETURN "" ENDIF lcFileName=tcFileName lnAtPos=AT(":",lcFileName) IF lnAtPos>0 lcFileName=SUBSTR(lcFileName,lnAtPos+1) ENDIF IF tlTrimExt lcFileName=this.TrimExt(lcFileName) ENDIF IF tlPlatformType lcFileName=IIF(_dos OR _unix,UPPER(lcFileName),LOWER(lcFileName)) ENDIF lcFileName=ALLTRIM(SUBSTR(lcFileName,AT("\",lcFileName,; MAX(OCCURS("\",lcFileName),1))+1)) DO WHILE LEFT(lcFileName,1)=="." lcFileName=ALLTRIM(SUBSTR(lcFileName,2)) ENDDO DO WHILE RIGHT(lcFileName,1)=="." lcFileName=ALLTRIM(LEFT(lcFileName,LEN(lcFileName)-1)) ENDDO RETURN lcFileName ENDPROC PROCEDURE setloadmessage SET MESSAGE TO "Loading "+this.Caption+" ..." ENDPROC PROCEDURE defaultreset LPARAMETERS toObject LOCAL lcProperty,lcDefaultValue,llEditMode IF TYPE("toObject.cProperty")#"C" RETURN .F. ENDIF lcProperty=ALLTRIM(toObject.cProperty) IF "."$lcProperty OR NOT PEMSTATUS(this.oObject,lcProperty,5) OR ; NOT PEMSTATUS(this.oObject,lcProperty,0) OR ; PEMSTATUS(this.oObject,lcProperty,1) OR PEMSTATUS(this.oObject,lcProperty,2) RETURN .F. ENDIF lcDefaultValue=TRANSFORM(GETPEM(IIF(this.lClass,this.oObject.ParentClass, ; this.oObject.Class),lcProperty)) IF EMPTY(lcDefaultValue) lcDefaultValue="(None)" ENDIF IF MESSAGEBOX([Reset "]+lcProperty+[" property to default?]+CR+CR+ ; [Default value = ]+lcDefaultValue,292,this.Caption)#6 RETURN .F. ENDIF this.oObject.ResetToDefault(lcProperty) WITH toObject llEditMode=.lEditMode .lEditMode=.F. .Refresh .lEditMode=llEditMode ENDWITH ENDPROC PROCEDURE Show LPARAMETERS nStyle IF this.lRelease NODEFAULT this.oObject=.NULL. this.lAutoRelease=.T. this.lAutoShow=.F. RETURN .F. ENDIF SET MESSAGE TO "Loading "+this.Caption+" ..." ENDPROC PROCEDURE Destroy this.lRelease=.T. this.Visible=.F. this.uSource=.NULL. this.oObject=.NULL. SET DATASESSION TO (this.DataSessionID) SET MESSAGE TO ENDPROC PROCEDURE Resize IF this.Height=1 lcClass=LOWER(this.Class) lcName=LOWER(this.Name) FOR lnCount = 1 TO _screen.FormCount oForm=_screen.Forms[lnCount] IF LOWER(oForm.Class)==lcClass AND PEMSTATUS(oForm,"lInitialized",5) AND ; oForm.lInitialized this.lRelease=.T. IF oForm.WindowState=1 oForm.WindowState=0 ENDIF oForm.Show RETURN ENDIF ENDFOR ENDIF IF NOT this.SetObject(toObject,tuSource,tlSkipSearch) this.oObject=.NULL. SET MESSAGE TO this.lRelease=.T. RETURN ENDIF this.LockScreen=.T. IF this.lAutoCenter this.AutoCenter=.T. ENDIF this.Refresh this.lInitialized=.T. this.LockScreen=.F. ENDPROC PROCEDURE Activate LOCAL lnPageCount,lnActivePage,lnCount IF this.lRelease this.Release RETURN .F. ENDIF PUBLIC _oBuilder _oBuilder=this this.Refresh this.LockScreen=.F. SELECT 0 SET MESSAGE TO ENDPROC PROCEDURE KeyPress LPARAMETERS nKeyCode, nShiftAltCtrl IF nKeyCode=27 IF this.QueryUnload() this.Release ENDIF ENDIF ENDPROC PROCEDURE Refresh IF ISNULL(this.oObject) OR TYPE("this.oObject")#"O" NODEFAULT RETURN .F. ENDIF ENDPROC PROCEDURE Load SET TALK OFF SET COLLATE TO "MACHINE" SET CONFIRM ON SET EXACT OFF SET EXCLUSIVE OFF SET MEMOWIDTH TO 1024 SET MULTILOCKS ON SET PALETTE OFF SET POINT TO "." SET SAFETY OFF PUBLIC _oBuilder _oBuilder=this this.cProgramPath=this.TrimFile(this.ClassLibrary) IF this.lSetLoadMessage this.SetLoadMessage ENDIF ENDPROC PROCEDURE Unload ACTIVATE SCREEN SET MESSAGE TO ENDPROC PROCEDURE Release IF NOT this.QueryUnload() NODEFAULT RETURN .F. ENDIF this.lRelease=.T. this.Visible=.F. this.uSource=.NULL. this.oObject=.NULL. ENDPROC PROCEDURE QueryUnload this.lRelease=.T. this.Visible=.F. this.uSource=.NULL. this.oObject=.NULL. ENDPROC  MPROCEDURE release RELEASE this ENDPROC PROCEDURE refreshpropertyvalue LOCAL lcProperty,luValue,luPropertyValue lcProperty=this.cProperty luValue=this.Text IF ISNULL(luValue) OR ISNULL(thisform.oObject) RETURN ENDIF luPropertyValue=thisform.oObject.&lcProperty IF TYPE("luValue")=="C" luValue=TRIM(luValue) IF luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue RETURN ENDIF IF luPropertyValue==luValue RETURN ENDIF thisform.lObjectUpdated=.T. thisform.oObject.&lcProperty=luValue ENDPROC PROCEDURE disable this.ReadOnly=.T. ENDPROC PROCEDURE RightClick thisform.DefaultReset(this) ENDPROC PROCEDURE MouseMove LPARAMETERS nButton, nShift, nXCoord, nYCoord this.Refresh ENDPROC PROCEDURE Valid LOCAL lcValidExpression,Value,Object,oTHIS,llResult IF this.ReadOnly RETURN ENDIF lcValidExpression=this.cValidExpression IF EMPTY(lcValidExpression) RETURN ENDIF lcValidExpression=ALLTRIM(lcValidExpression) IF TYPE("lcValidExpression")=="C" AND LEFT(lcValidExpression,1)=="=" lcValidExpression=ALLTRIM(SUBSTR(lcValidExpression,2)) ENDIF Value=this.Text Object=thisform.oObject oTHIS=this llResult=EVALUATE(lcValidExpression) Value=.NULL. Object=.NULL. oTHIS=.NULL. IF TYPE("llResult")#"L" OR NOT llResult this.lEditMode=.T. RETURN .F. ENDIF ENDPROC PROCEDURE LostFocus LOCAL lcProperty lcProperty=this.cProperty this.lEditMode=.F. IF ISNULL(lcProperty) OR EMPTY(lcProperty) RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE GotFocus this.Refresh this.lEditMode=.T. ENDPROC PROCEDURE InteractiveChange LOCAL lcProperty,luValue thisform.lObjectUpdated=.T. lcProperty=this.cProperty luValue=this.Text IF ISNULL(luValue) OR NOT this.lUpdateOnChange OR ISNULL(lcProperty) OR ; EMPTY(lcProperty) OR TYPE("luValue")#"C" OR NOT this.Valid() RETURN ENDIF this.RefreshPropertyValue ENDPROC PROCEDURE Refresh LOCAL lcProperty,luValue,luPropertyValue IF this.lEditMode NODEFAULT RETURN ENDIF this.cType=TYPE("thisform.oObject."+this.cProperty) lcProperty=this.cProperty luValue=this.Text IF (NOT this.lAutoRefresh AND NOT ISNULL(luValue)) OR EMPTY(lcProperty) OR ; ISNULL(thisform.oObject) OR TYPE("thisform.oObject."+lcProperty)=="U" NODEFAULT this.Value="" this.Disable RETURN ENDIF IF NOT this.lReadOnly AND NOT "."$lcProperty AND NOT ","$lcProperty AND ; (PEMSTATUS(thisform.oObject,lcProperty,1) OR ; PEMSTATUS(thisform.oObject,lcProperty,2)) this.lReadOnly=.T. ENDIF IF this.lReadOnly this.Disable ELSE IF this.ReadOnly this.ReadOnly=.F. ENDIF ENDIF luPropertyValue=thisform.oObject.&lcProperty IF NOT ISNULL(luValue) AND TYPE("luValue")==TYPE("luPropertyValue") AND ; luValue==luPropertyValue RETURN ENDIF this.Value=thisform.oObject.&lcProperty ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC PROCEDURE Init IF EMPTY(this.cProperty) OR INLIST(this.cType,"U","O") OR ISNULL(this.Value) this.Value="" ENDIF ENDPROC PROCEDURE KeyPress LPARAMETERS nKeyCode, nShiftAltCtrl IF NOT this.lAllowEnter AND nKeyCode=13 NODEFAULT RETURN .F. ENDIF IF nKeyCode#127 AND this.nMaxLength>0 AND LEN(this.Text)>this.nMaxLength this.Value=LEFT(this.Text,this.nMaxLength) ENDIF ENDPROC oobject linitialized lautocenter builder Specifies a custom builder reserved for use with BUILDER.APP (supplied with VFP). Must be a valid PRG, FXP, APP, or SCX filename. cversion lautoshow lautorelease builderx Specifies a custom builder reserved for use with BuilderX. Must be a valid VCX class, PRG, FXP, APP, or SCX filename. Classes are specified using [ClassLib], Class syntax. Leave ClassLib blank to specify the current classlib (,). cobjectname lclass lmultipleinstances lerror lrelease usource lobjectupdated cprogrampath lsetloadmessage ndefaultpagecount cclass cclasslibrary chelpfile nhelpid *setobject *refreshnonactivepages *addobjects *trimext *trimfile *trimpath *setloadmessage *defaultreset 0 00 %a*/T$+U <UTHIS TC %CS BTC;  T T(q% TC;TCC=TCC\%TC T%C<.T T BU TALINKSTCLINKSLCLINKSLCLINK LNLINKTOTAL LNLINKCOUNTLNCOUNTLNATPOSTHISTRANSFORMLINKSA#  TC %C_ B T CWF "T CC+COCN CO6 TTC;( % (TC;TCC=TCC\LTC T%Cc. EC@*%C+ CCCfCCf   ^JC TC %C.T;% ' #  F  BUTCLINKSTOOBJECTTCTYPELCLINKS1LCLINKS2LCLINK LNLINKTOTALLNCOUNTLNATPOS LNLASTSELECT LNLASTRECNOTHISTRANSFORMLINKSBUILDERTYPE ONEWOBJECTINHERITPROPERTIES EVALLINKSLINKS<%CBuilder!FB%C0 %C0 ZFB-FQ%C0 B-FQ%CBuilder FB- G(C' %CID && CC@C  G((ID-UBUILDERTHIS CBUILDERTABLECBUILDERSTRUCTURETABLEID      !"#$%&'()*+,-T./T.0T.1T.2%C.3 AFG&(B-TC45@TCC46.7]@ T 0~CC8fCLASSCCC9@ T"CC:B%C"0CCCC"=(C""6.7]@  T CO!T.2 % 5TCCthisform.uSourcebC 4;6 4<FG&(%C :4=B ^J)(TC,C@)8.?.>%FG&(BT./)%C4A C)B _T4A)B%C4C C)D T4C)DT#CCLASSLIBvG~(.ET!4FT4Fa4G!TH4ITHT4I T T T T T- T T TTCC)J%CT BuilderT4K T) (C,%Cbuilder  !FLTCC8fT CC , EC @%C =@T CC \ T*aT*C+ PAGE  EC @%C . ^J)C@)8.?TCC)8f H!o PROPERTYJT.1) PAGEoT.0) %*6%C+ PAGE TCC)J T %C-C@ T.T -T-C@.%C M. T  T T T T T T T T T T( T&- T'- T% T  TM T$ %C+ PROPERTY  TCC)NTC)JT%CC)OT)PT)QT)RT)STC)TT)UCTCCCCC)VC C ,C ,C ,;,T()WT&)XT')YT CC)9T"CCC):@%C"  (%C"=(C"R)  T"C" G~("%* T] %C9 TCC %CY TTC6T H L  C TC C=^ TCTCC\2L $TCthisform.oObject.b$%CCNLDT H .%C=^{ TCC\*TC CCNDT *%C C C@C@  T.ZTC.Z 8 T%= T TTPageCCZ%4GH  4G THWITH .&lcPageName T[4[T\4\T]4]% TKGeneral,WITH thisform.pgfBuilder.&lcPageName%CC c T%C  TK T% #T.^C.ZG._% T.`TT CC]@%C L  T+CW!C BuilderCheckBoxa F+%C. bOT.oControl=.&lcObjName TPTQTbT%CStyleh#TW(%C ETKTcX%C uTdTc&%C% Te%f Tga T.%C  TT CC]@ T+CWC BuilderLabela F+%C. bOcT.oControl=.&lcLabelName TPTQTbTTK TgaT$QS TTCd$D%C  T+CWC a F+%C. bOT%C C h.oControl=.&lcObjName tTPTQ% TR%0TS%CTabIndexhqTbT'%CCaptionhC TK)%C cPropertyhC Td%C lReadOnlyhTc&%%ClUpdateOnChangehMTi'&%CcValidExpressionhTj%CStylehTW(#%C RowSourceTypeh%C Tk%C TV-%C StatusBarTexthC% \Te%f Tga T. T+CW=C CBuilderComboBoxBuilderTextBox6a F+%C. bO T.oControl=.&lcObjName TPTQ%pTR%TSTbTTcX%C TdTc&Ti'%C%  Te%Tj %'%N W C( tTWTW(%C Tk%C TVf Tga TT.1T.0%CC 8 #.2T4F!&SET CLASSLIB TO &lcLastSetClassLib FG&(%  4<B-UlLCCLASSLCCLASSLIBRARY LCCAPTION LCPROPERTY LCVALIDEXPRLNROWSOURCETYPE LCROWSOURCE LLDROPDOWNOCONTROLLNRECNO LCOBJCLASS LCLABELNAME LCOBJNAMELNCOUNTLNLASTPAGECOUNT LNOBJCOUNTLNOBJADD LNOBJTOTALLNTOPLNLEFTLNHEIGHTLNWIDTH LCPAGENAME LCPAGECAPTIONLCLASTPAGECAPTION LNPAGECOUNT LNPARENTCOUNTLCSOURCE LNTABINDEX LCRECORDTYPELCTYPELNPAGENOLCLINK LLLOCKSCREEN LCCLASSLIBLCLASTSETCLASSLIB LNMINLEFTLCDESC LLREADONLYLLUPDATEONCHANGELNSTYLEORECORDLLPAGELNSELECTLALINKS LAPARENTSTHIS OCLASSRECORD OPAGERECORDOPROPERTYRECORDNRECNOOPENBUILDERTABLETHISFORMCCLASS CCLASSLIBRARY CBUILDERTABLETYPE CLASSNAMECLASSLIBUSOURCERELEASEOOBJECTALINKS EVALLINKSLINKS CHELPFILEHELPFILENHELPIDHELPID CLASSLIBRARY LOCKSCREEN PGFBUILDER PAGECOUNTNDEFAULTPAGECOUNTTEXTCAPTIONBUILDERLCOBJCLASSLIBRARYMEMBERDESCTOPLEFTHEIGHTWIDTH VALIDEXPR ROWSRCTYPE ROWSOURCESTYLEREADONLY UPDONCHNG NMAXOBJECTSFONTNAMEFONTSIZEFONTBOLD NTOPFACTORNTOPNLEFT ADDOBJECTTABINDEX LREADONLY CPROPERTY STATUSBARTEXTREFRESHVISIBLE REMOVEOBJECTLUPDATEONCHANGECVALIDEXPRESSION ROWSOURCETYPE%C& B@TCCCCCC C ;C ;C ;,;%C=;TCC\%CR;TCCC>= BUTCLINKSLCLINKS %C C =T%C C sT%C C T%C C T%C C T%C C KT%C C T%C C T  %C C T  %C C #T  %C C YT  %C C T  %C C T%C C T%C C 1T%C C gT%C C T%C C T%C C  TUTOOBJECT TONEWOBJECTTEXTDESC CLASSNAMECLASSLIBMEMBERHELPFILEHELPIDTOPLEFTHEIGHTWIDTH ROWSRCTYPE ROWSOURCESTYLE VALIDEXPRREADONLY UPDONCHNGCOMMENTUSER%%CBuilderQUBUILDERTC%\ ETTCC@%\ TTCC@UTHIS CBUILDERTABLETHISFORM CPROGRAMPATHCBUILDERSTRUCTURETABLE/BCUNERRORCMETHODNLINETHISFORMERRORTHISrelease,alinks@ evallinks*openbuildertable6 addobjectstransformlinks#inheritproperties $Destroy(Init)Error)1q3RAq1AAA1A31RAq!q1AAAQAAAaAA3aqAA11qAqA1qAA1qqAaAA3qq!aqA!A"AAAQaAAAaAA1A1AqAAqAqAAqAqAAAAAQAqAQAAAAAq!q!2qAAA!AAAAqAAAAAAqAAAAAqQAAAAAA1AA!AAAAAAAAA!AA1AAa1AAAAAAqAAAQAaAA1AAAAAAAAAAAAAqAAAAAAAAaaqA3qqAqAAqA31A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A3aA3QaAqaAq32!>$GE Odf D2oi23 3;C<H<\Gc<=bQ>j>n)0  % y U <UTHISS%C this.ValuebC4TCXQLTUTHIS INPUTMASKUTT%C C NB0luPropertyValue=thisform.oObject.&lcProperty %CluValuebCTC`%BTa(thisform.oObject.&lcProperty=luValue B%BTa(thisform.oObject.&lcProperty=luValue U LCPROPERTYLUVALUELUPROPERTYVALUETHIS CPROPERTYVALUETHISFORMOOBJECTLOBJECTUPDATEDTaUTHISREADONLY  UNBUTTONNSHIFTNXCOORDNYCOORDTHISREFRESHI2%CCUO C BTUTHIS CPROPERTYCTYPEVALUE/BCUNERRORCMETHODNLINETHISFORMERRORTHIS UTHISREFRESHINPUTMASKA%'B*TCthisform.oObject.bTTT% C C C Cthisform.oObject.bU T  BR% . , $C hC h  OT a% m  % T -0luPropertyValue=thisform.oObject.&lcProperty @%C "CluValuebCluPropertyValueb  B+this.Value=thisform.oObject.&lcProperty U LCPROPERTYLUVALUELUPROPERTYVALUETHIS LEDITMODECTYPE CPROPERTYVALUE LAUTOREFRESHTHISFORMOOBJECTDISABLE LREADONLYREADONLY TaTTM%C C C CluValuebC C B  U LCPROPERTYLUVALUETHISFORMLOBJECTUPDATEDTHIS CPROPERTYVALUELUPDATEONCHANGEVALIDREFRESHPROPERTYVALUE TaUTHISREFRESH LEDITMODERTT-%CC AB U LCPROPERTYTHIS CPROPERTY LEDITMODEREFRESHPROPERTYVALUEP%+BT%CRBTC6%ClcValidExpressionbCC== TCC\TT TTC T T T$%CllResultbL IT aB-U LCVALIDEXPRESSIONVALUEOBJECTOTHISLLRESULTTHISREADONLYCVALIDEXPRESSIONTHISFORMOOBJECT LEDITMODECUTHISFORM DEFAULTRESETTHISrelease,refreshinputmask@refreshpropertyvaluedisableb MouseMoveInitErrorIProgrammaticChangeRefreshInteractiveChangeGotFocus LostFocusValid RightClickP 1q3aA3AAAAAAAA3313!A333AAABAAA#AAAAA3AA33qAA3qAAAAaAAAqA32!H  &!T*$o0(H6+q<-*@KRp eT rW l w_ w  ) >uPROCEDURE release RELEASE this ENDPROC PROCEDURE alinks LPARAMETERS taLinks,tcLinks LOCAL lcLinks,lcLink,lnLinkTotal,lnLinkCount,lnCount,lnAtPos lcLinks=this.TransformLinks(tcLinks) IF EMPTY(lcLinks) RETURN 0 ENDIF lnLinkTotal=(OCCURS(";",lcLinks)+1) DIMENSION taLinks[1] taLinks="" lnLinkCount=0 FOR lnCount = 1 TO lnLinkTotal IF lnCountRECCOUNT(),0,RECNO()) lcLinks2="" lnLinkTotal=(OCCURS(";",lcLinks1)+1) FOR lnCount = 1 TO lnLinkTotal IF lnCount0 GO lnLastRecNo ENDIF SELECT (lnLastSelect) RETURN lcLinks2 ENDPROC PROCEDURE openbuildertable IF USED("Builder") SELECT Builder RETURN ENDIF IF NOT FILE(this.cBuilderTable) IF NOT FILE(this.cBuilderStructureTable) SELECT 0 RETURN .F. ENDIF SELECT 0 CREATE (this.cBuilderTable) FROM (this.cBuilderStructureTable) USE IF NOT FILE(this.cBuilderTable) RETURN .F. ENDIF ENDIF SELECT 0 USE (this.cBuilderTable) AGAIN SHARED ALIAS builder IF NOT USED("Builder") SELECT 0 RETURN .F. ENDIF SET FILTER TO NOT DELETED() IF NOT TAG(1)=="ID" INDEX ON LOWER(ALLTRIM(ID)) FOR NOT EMPTY(ID) ; TAG ID UNIQUE ADDITIVE ENDIF SET ORDER TO ID LOCATE ENDPROC PROCEDURE addobjects LOCAL lcClass,lcClassLibrary,lcCaption,lcProperty,lcValidExpr LOCAL lnRowSourceType,lcRowSource,llDropDown,oControl,lnRecNo,lcObjClass LOCAL lcLabelName,lcObjName,lnCount,lnLastPageCount,lnObjCount,lnObjAdd,lnObjTotal LOCAL lnTop,lnLeft,lnHeight,lnWidth,lcPageName,lcPageCaption,lcLastPageCaption LOCAL lnPageCount,lnParentCount,lcSource,lnTabIndex,lcRecordType,lcType,lnPageNo LOCAL lcLink,llLockScreen,lnObjTotal,lcClassLib,lcLastSetClassLib,lnMinLeft LOCAL lcDesc,llReadOnly,llUpdateOnChange,lnStyle,oRecord,llPage,lnSelect LOCAL laLinks[1],laParents[1] this.oClassRecord=.NULL. this.oPageRecord=.NULL. this.oPropertyRecord=.NULL. this.nRecNo=0 IF NOT this.OpenBuilderTable() SELECT 0 SET MESSAGE TO RETURN .F. ENDIF lcClass=LOWER(thisform.cClass) lcClassLibrary=LOWER(SYS(2014,thisform.cClassLibrary,this.cBuilderTable)) lnRecNo=0 SCAN ALL FOR UPPER(ALLTRIM(Type))=="CLASS" AND ; LOWER(ALLTRIM(MLINE(ClassName,1)))==lcClass lcClassLib=ALLTRIM(MLINE(ClassLib,1)) IF EMPTY(lcClassLib) OR LOWER(SYS(2014,IIF(LEFT(lcClassLib,1)=="(", ; EVALUATE(lcClassLib),lcClassLib),this.cBuilderTable))==lcClassLibrary lnRecNo=RECNO() EXIT ENDIF ENDSCAN this.nRecNo=lnRecNo IF lnRecNo=0 lcSource=IIF(TYPE("thisform.uSource")=="C",thisform.uSource,"") thisform.Release SELECT 0 SET MESSAGE TO IF NOT EMPTY(lcSource) DO (_builder) WITH (thisform.oObject),,.NULL. ENDIF RETURN ENDIF SCATTER MEMO NAME oRecord lnObjTotal=this.ALinks(@laLinks,this.EvalLinks(Links,oRecord,Type)) IF lnObjTotal=0 SELECT 0 SET MESSAGE TO RETURN ENDIF this.oClassRecord=oRecord IF EMPTY(thisform.cHelpFile) AND NOT EMPTY(oRecord.HelpFile) thisform.cHelpFile=oRecord.HelpFile ENDIF IF EMPTY(thisform.nHelpID) AND NOT EMPTY(oRecord.HelpID) thisform.nHelpID=oRecord.HelpID ENDIF lcLastSetClassLib=SET("CLASSLIB") SET CLASSLIB TO (this.ClassLibrary) ADDITIVE llLockScreen=thisform.LockScreen thisform.LockScreen=.T. WITH thisform.pgfBuilder .PageCount=thisform.nDefaultPageCount lnPageCount=.PageCount lnLastPageCount=thisform.nDefaultPageCount+1 ENDWITH lnTabIndex=1 lnObjCount=0 lnObjAdd=1 lnObjTotal=0 laParents="" lnParentCount=0 lcPageCaption="" lcLastPageCaption="" lcCaption=ALLTRIM(MLINE(oRecord.Text,1)) IF EMPTY(lcCaption) lcCaption=lcClass+" Builder" ENDIF thisform.Caption=lcCaption oRecord=.NULL. FOR lnCount = 1 TO ALEN(laLinks) IF NOT USED("builder") EXIT ENDIF SELECT builder lcRecordType=UPPER(ALLTRIM(Type)) lcLink=ALLTRIM(laLinks[lnCount]) SEEK (LOWER(lcLink)) IF LEFT(lcLink,1)=="@" lcLink=ALLTRIM(SUBSTR(lcLink,2)) llPage=.T. ELSE llPage=(NOT EOF() AND lcRecordType=="PAGE") SEEK (LOWER(lcLink)) ENDIF IF EMPTY(lcLink) LOOP ENDIF SCATTER MEMO NAME oRecord this.EvalLinks(Links,oRecord,Type) lcRecordType=UPPER(ALLTRIM(oRecord.Type)) DO CASE CASE lcRecordType=="PROPERTY" this.oPropertyRecord=oRecord CASE lcRecordType=="PAGE" this.oPageRecord=oRecord ENDCASE IF llPage IF NOT EOF() AND lcRecordType=="PAGE" lcPageCaption=ALLTRIM(MLINE(oRecord.Text,1)) ELSE lcPageCaption=lcLink ENDIF IF ASCAN(laParents,LOWER(lcPageCaption))>0 lcPageCaption="" ELSE lnParentCount=lnParentCount+1 DIMENSION laParents[lnParentCount] laParents[lnParentCount]=LOWER(lcPageCaption) ENDIF LOOP ENDIF IF EMPTY(lcLink) LOOP ENDIF lcLabelName="" lcProperty="" lcCaption="" lnTop=0 lnLeft=0 lnHeight=0 lnWidth=0 lcValidExpr="" lnRowSourceType=0 lcRowSource="" lnStyle=0 llReadOnly=.F. llUpdateOnChange=.F. lcDesc="" lcObjClass="" lcObjClassLibrary="" lnMinLeft=0 IF NOT EOF() AND lcRecordType=="PROPERTY" lcProperty=ALLTRIM(MLINE(oRecord.Member,1)) lcCaption=ALLTRIM(oRecord.Text) lcDesc=ALLTRIM(MLINE(oRecord.Desc,1)) lnTop=oRecord.Top lnLeft=oRecord.Left lnHeight=oRecord.Height lnWidth=oRecord.Width lcValidExpr=ALLTRIM(oRecord.ValidExpr) lnRowSourceType=oRecord.RowSrcType lcRowSource=STRTRAN(STRTRAN(STRTRAN(STRTRAN(ALLTRIM(oRecord.RowSource),CR_LF,","), ; LF,","),CR,","),";",",") lnStyle=oRecord.Style llReadOnly=oRecord.ReadOnly llUpdateOnChange=oRecord.UpdOnChng lcObjClass=ALLTRIM(MLINE(oRecord.ClassName,1)) lcClassLib=LOWER(ALLTRIM(MLINE(oRecord.ClassLib,1))) IF NOT EMPTY(lcClassLib) IF LEFT(lcClassLib,1)=="(" AND RIGHT(lcClassLib,1)==")" lcClassLib=EVALUATE(lcClassLib) ENDIF SET CLASSLIB TO (lcClassLib) ADDITIVE ENDIF ENDIF IF lcCaption=="*" lcCaption="" ELSE IF EMPTY(lcProperty) lcProperty=ALLTRIM(MLINE(lcLink,1)) ENDIF IF EMPTY(lcCaption) lcCaption=lcProperty ENDIF ENDIF lnObjAdd=IIF(lnTop=0,1,0) lnObjTotal=lnObjTotal+1 DO CASE CASE EMPTY(lcProperty) lcType="C" CASE LEFT(lcProperty,1)=="^" lcType="C" lcProperty=ALLTRIM(SUBSTR(lcProperty,2)) OTHERWISE lcType=TYPE("thisform.oObject."+lcProperty) IF NOT INLIST(lcType,"C","N","L","D","T") LOOP ENDIF ENDCASE IF LEFT(lcCaption,1)=="^" lcCaption=ALLTRIM(SUBSTR(lcCaption,2)) ENDIF llDropDown=(NOT EMPTY(lcRowSource) AND INLIST(lcType,"C","N","D","T")) IF NOT EMPTY(lcPageCaption) AND NOT EMPTY(lcLastPageCaption) AND ; NOT LOWER(lcLastPageCaption)==LOWER(lcPageCaption) lnObjCount=this.nMaxObjects*lnPageCount ENDIF lnPageNo=INT(lnObjCount/this.nMaxObjects)+1 lnPageCount=lnPageNo IF lnLastPageCount#lnPageCount lnLastPageCount=lnPageCount lnTabIndex=1 ENDIF lcPageName="Page"+ALLTRIM(STR(lnPageCount)) IF thisform.pgfBuilder.PageCount0 .Height=lnHeight ENDIF IF lnWidth>0 .Width=lnWidth ENDIF IF PEMSTATUS(oControl,"TabIndex",5) .TabIndex=lnTabIndex lnTabIndex=lnTabIndex+1 ENDIF IF PEMSTATUS(oControl,"Caption",5) AND NOT EMPTY(lcCaption) .Caption=lcCaption ENDIF IF PEMSTATUS(oControl,"cProperty",5) AND NOT EMPTY(lcProperty) .cProperty=lcProperty ENDIF IF PEMSTATUS(oControl,"lReadOnly",5) .lReadOnly=llReadOnly ENDIF IF PEMSTATUS(oControl,"lUpdateOnChange",5) .lUpdateOnChange=llUpdateOnChange ENDIF IF PEMSTATUS(oControl,"cValidExpression",5) .cValidExpression=lcValidExpr ENDIF IF PEMSTATUS(oControl,"Style",5) .Style=lnStyle ENDIF IF PEMSTATUS(oControl,"RowSourceType",5) IF NOT EMPTY(lnRowSourceType) .RowSourceType=lnRowSourceType ENDIF IF NOT EMPTY(lcRowSource) .RowSource=lcRowSource ENDIF ENDIF IF PEMSTATUS(oControl,"StatusBarText",5) AND NOT EMPTY(lcDesc) .StatusBarText=lcDesc ENDIF .Refresh .Visible=.T. ENDWITH oControl=.NULL. LOOP ENDIF lnSelect=SELECT() .AddObject(lcObjName,IIF(llDropDown,"BuilderComboBox","BuilderTextBox")) SELECT (lnSelect) IF TYPE("."+lcObjName)#"O" lnObjCount=lnObjCount-lnObjAdd LOOP ENDIF oControl=.&lcObjName WITH oControl .Top=lnTop .Left=lnLeft IF lnHeight>0 .Height=lnHeight ENDIF IF lnWidth>0 .Width=lnWidth ENDIF .TabIndex=lnTabIndex lnTabIndex=lnTabIndex+1 .lReadOnly=ReadOnly IF NOT EMPTY(lcProperty) .cProperty=lcProperty ENDIF .lReadOnly=llReadOnly .lUpdateOnChange=llUpdateOnChange IF NOT EMPTY(lcDesc) .StatusBarText=lcDesc ENDIF .cValidExpression=lcValidExpr IF llDropDown IF lcType=="N" AND .Style=0 AND EMPTY(lnStyle) .Style=2 ELSE .Style=lnStyle ENDIF IF NOT EMPTY(lnRowSourceType) .RowSourceType=lnRowSourceType ENDIF IF NOT EMPTY(lcRowSource) .RowSource=lcRowSource ENDIF ENDIF .Refresh .Visible=.T. ENDWITH oControl=.NULL. ENDWITH ENDFOR this.oPropertyRecord=.NULL. this.oPageRecord=.NULL. IF NOT EMPTY(ALIAS()) GO this.nRecNo ENDIF thisform.LockScreen=llLockScreen SET CLASSLIB TO &lcLastSetClassLib SELECT 0 SET MESSAGE TO IF lnObjCount=0 AND lnObjTotal=0 thisform.Release RETURN .F. ENDIF ENDPROC PROCEDURE transformlinks LPARAMETERS tcLinks LOCAL lcLinks IF EMPTY(tcLinks) RETURN "" ENDIF lcLinks=STRTRAN(STRTRAN(STRTRAN(STRTRAN(ALLTRIM(tcLinks),CR_LF,";"), ; LF,";"),CR,";"),",",";") IF LEFT(lcLinks,1)==";" lcLinks=ALLTRIM(SUBSTR(lcLinks,2)) ENDIF IF RIGHT(lcLinks,1)==";" lcLinks=ALLTRIM(LEFT(lcLinks,LEN(lcLinks)-1)) ENDIF RETURN lcLinks ENDPROC PROCEDURE inheritproperties LPARAMETERS toObject,toNewObject IF EMPTY(toObject.Text) AND NOT EMPTY(toNewObject.Text) toObject.Text=toNewObject.Text ENDIF IF EMPTY(toObject.Desc) AND NOT EMPTY(toNewObject.Desc) toObject.Desc=toNewObject.Desc ENDIF IF EMPTY(toObject.ClassName) AND NOT EMPTY(toNewObject.ClassName) toObject.ClassName=toNewObject.ClassName ENDIF IF EMPTY(toObject.ClassLib) AND NOT EMPTY(toNewObject.ClassLib) toObject.ClassLib=toNewObject.ClassLib ENDIF IF EMPTY(toObject.Member) AND NOT EMPTY(toNewObject.Member) toObject.Member=toNewObject.Member ENDIF IF EMPTY(toObject.HelpFile) AND NOT EMPTY(toNewObject.HelpFile) toObject.HelpFile=toNewObject.HelpFile ENDIF IF EMPTY(toObject.HelpID) AND NOT EMPTY(toNewObject.HelpID) toObject.HelpID=toNewObject.HelpID ENDIF IF EMPTY(toObject.Top) AND NOT EMPTY(toNewObject.Top) toObject.Top=toNewObject.Top ENDIF IF EMPTY(toObject.Left) AND NOT EMPTY(toNewObject.Left) toObject.Left=toNewObject.Left ENDIF IF EMPTY(toObject.Height) AND NOT EMPTY(toNewObject.Height) toObject.Height=toNewObject.Height ENDIF IF EMPTY(toObject.Width) AND NOT EMPTY(toNewObject.Width) toObject.Width=toNewObject.Width ENDIF IF EMPTY(toObject.RowSrcType) AND NOT EMPTY(toNewObject.RowSrcType) toObject.RowSrcType=toNewObject.RowSrcType ENDIF IF EMPTY(toObject.RowSource) AND NOT EMPTY(toNewObject.RowSource) toObject.RowSource=toNewObject.RowSource ENDIF IF EMPTY(toObject.Style) AND NOT EMPTY(toNewObject.Style) toObject.Style=toNewObject.Style ENDIF IF EMPTY(toObject.ValidExpr) AND NOT EMPTY(toNewObject.ValidExpr) toObject.ValidExpr=toNewObject.ValidExpr ENDIF IF EMPTY(toObject.ReadOnly) AND NOT EMPTY(toNewObject.ReadOnly) toObject.ReadOnly=toNewObject.ReadOnly ENDIF IF EMPTY(toObject.UpdOnChng) AND NOT EMPTY(toNewObject.UpdOnChng) toObject.UpdOnChng=toNewObject.UpdOnChng ENDIF IF EMPTY(toObject.Comment) AND NOT EMPTY(toNewObject.Comment) toObject.Comment=toNewObject.Comment ENDIF IF EMPTY(toObject.User) AND NOT EMPTY(toNewObject.User) toObject.User=toNewObject.User ENDIF ENDPROC PROCEDURE Destroy IF USED("Builder") USE IN Builder ENDIF ENDPROC PROCEDURE Init this.cBuilderTable=ALLTRIM(this.cBuilderTable) IF NOT "\"$this.cBuilderTable this.cBuilderTable=thisform.cProgramPath+this.cBuilderTable ENDIF this.cBuilderTable=LOWER(ALLTRIM(this.cBuilderTable)) IF NOT "\"$this.cBuilderStructureTable this.cBuilderStructureTable=thisform.cProgramPath+this.cBuilderStructureTable ENDIF this.cBuilderStructureTable=LOWER(ALLTRIM(this.cBuilderStructureTable)) ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine RETURN thisform.Error(nError,cMethod,nLine,this) ENDPROC